package zeus.ejb;

import java.util.Calendar;
import java.util.Date;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import zeus.model.Cliente;
import zeus.service.EjbCadastroClienteService;


@Stateless
public class EjbCadastroCliente implements EjbCadastroClienteService {
	
	@PersistenceContext
	EntityManager entityManager;
	
	@Override
	public void cadastrarCliente(Cliente hospede){
		entityManager.persist(hospede);
	}
	
	public int calcularIdade(Date nascimento){
		if(nascimento == null){
			return 0;
		}
		
		Calendar nascimentoCal = Calendar.getInstance();
		nascimentoCal.setTime(nascimento);
		
		Calendar hoje = Calendar.getInstance();
		hoje.setTime(new Date(System.currentTimeMillis()));
		
		int idade = hoje.get(Calendar.YEAR) - nascimentoCal.get(Calendar.YEAR);
		nascimentoCal.add(Calendar.YEAR, idade);
		
		if(nascimentoCal.after(hoje)){
			idade--;
		}
		
		return idade;
		
	}
	
	public boolean hasCadastro(String email){
		
		String hql = "from Cliente c where c.email ="+email;
		Query query = entityManager.createQuery(hql);
		
		try{
			Cliente cliente = (Cliente) query.getSingleResult();
			return cliente != null;
		}catch(Exception e){
			return false;
		}
	}

}
